Предприятие производит закупку изделий A и B, на которую выделена определённая сумма денег. У поставщика есть в наличии различные модификации этих изделий по различной цене. При покупке необходимо руководствоваться следующими правилами:
1. Нужно купить как можно больше изделий, независимо от их типа и модификации.
2. Если можно разными способами купить максимальное количество изделий, нужно выбрать тот способ, при котором будет куплено как можно больше изделий A.
3. Если можно разными способами купить максимальное количество изделий с одинаковым количеством изделий A, нужно выбрать тот способ, при котором вся покупка будет дешевле.
Определите, сколько всего будет куплено изделий A и какая сумма останется неиспользованной.
Добавлено: 24.04.26 18:52
Решение на Python:
f = open("embed.txt")
_, M = list(map(int, f.readline().split()))
order = []
for line in f.readlines():
order.append(line.split())
order = sorted(order)
buy = []
for el in order.copy():
if M - int(el[0]) >= 0:
M -= int(el[0])
buy.append(el)
order.remove(el)
buy_a = [x for x in buy if x[1] == "A"]
buy_b = [y for y in buy if y[1] == "B"]
order_a = [z for z in order if z[1] == "A"]
while int(buy_b[-1][0]) + M >= int(order_a[0][0]):
M += int(buy_b.pop()[0])
buy.append(order_a[0])
M -= int(order_a.pop(0)[0])
print(len([el for el in buy if el[1] == "A"]), M) # 157 267Ответ: 157 267
Автор - rubygem17
None